package week5;

/**
 *
 * 704. 二分查找
 * https://leetcode-cn.com/problems/binary-search/
 *
 * 执行结果：  通过  显示详情
 *
 * 添加备注
 * 执行用时：0 ms, 在所有 Java 提交中击败了100.00% 的用户
 * 内存消耗：39.2 MB, 在所有 Java 提交中击败了79.27% 的用户
 * 通过测试用例：47 / 47
 * 炫耀一下:
 */
public class Week5BinarySearch {

    public int search(int[] nums, int target) {
        int left = 0;
        int right = nums.length - 1;
        for(;left <= right;) {
            int middle = (right - left) / 2 + left;
            int middleValue = nums[middle];
            if(middleValue == target) {
                return middle;
            } else if(middleValue > target) {
                right = middle - 1;
            } else if(middleValue < target) {
                left = middle + 1;
            }
        }

        return -1;
    }
}
